#ifndef OPTS_H
#define OPTS_H

class ServerOpts
{
	public:
		// Add a way to specify which folder should be used to load the ini file from
		// JUST in case we can't assume it's the same as that containing the current executable.
		static void load(const String& iniFile = String::emptyString, const String& serverName = String::emptyString );

    public:
        static void GetOptFileNames( String& sIniFileName, String& sServerName );

		static bool IsDebugCasinoName(); // check if the casino name is used in debug/QA environment

	protected:
		static void getStrOpt(const String& Section, const String& Key, const String& Default, String& Dest, const String& IniFile);
		static int32 getInt32Opt(const String& Section, const String& Key, int32 Default, const String& IniFile);

	public:
		static String dbdsn;
		static String dblogin;
		static String dbpasswd;

		static String smtphost;
		static String smtpsubject;
		static String smtpto;
		static String listservEmail;
		
		static String baseName;
		static String appName;           // CSN-13943 - Store app (exe) name so that Service Control can read it
		static String casinoName;
		static String currency; // CSN-13727 - Return currency in Authentication response
		static int32 casinoId;
		static bool8 bAllowTesting;
		static bool8 bSaveFunData;
		static bool8 bUseExternalWallet;
		static bool8 bUseDBWallet;

		static String logDirectory;		 // cgc. 26/08/2009. New log in text file
		static int32  logAppLevel;		 // cgc. 16/10/2009. Log trace level

		static int32  serverId;
		static int32  skinId;

		static String intAPIHost;		// CSN-7075: New Authentication
		static String intAPIUser;		// CSN-7075: New Authentication
		static String intAPIPassword;	// CSN-7075: New Authentication
		static String intAPIProduct;	// CSN-8893: External Wallet
		
		// CSN-14503: paths for Patch service
		static String patchPackagesBasePath; // Packages install base path
		static String patchPackagesPath;     // Path where packages are installed
		static String patchNewPackagesPath;  // Path where on-the-fly packages are installed
		static String patchPackagesList;     // Packages list file path

        static int32 nNumListeners;  // kharmon.  12-01-05.  #7665.  Adding option to control the size of the socket listener queue.
};

#endif
